//不定参函数的使用
#include <stdio.h>

//对于参数不固定的我们可以用"..."来替代
//_FILE_ 和 _LINE_ 是C语言定义的两个宏值，分别为文件名和行号
//fmt直接拼接到后面用于后面我们自己替换,怎么理解呢其实就是相当于有两个替换的值，一个是fmt一个是“...”
//__VA_ARGS__ 是一个宏用于取代后面的“...”
#define LOG(fmt,...) printf("[%s-%d]"fmt,__FILE__,__LINE__,__VA_ARGS__);
// #define LOG(fmt,...) printf("[%s-%d]"fmt,__FILE__,__LINE__,##__VA_ARGS__);
int main()
{
    LOG("%s-%d\n","wang",666);//这里其实%s-%d\n代替了fmt,后面的” "wang",666 “ 其实就是“...”然后代替了__VA_ARGS__
    //那么就会出现一个问题
    //LOG("wang")//如果我们这么写，就只有一个参数，然后有一个参数就为空这么就会报错，那么此时我们可以在__VA_ARGS__前面加上##表示第二个参数为空的时候取消第二个参数
}
